home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Freeware / Jano_v1.01 / Install.perl < prev    next >
Text File  |  2002-10-28  |  3KB  |  112 lines

  1. #!/usr/bin/perl
  2. # Perl script to generate catalog's installer script
  3. # Written by T.Pierron 13 feb 2002
  4. # Free software under GNU public license
  5.  
  6. $file    = "Catalogs/Install catalog";
  7. $app     = "JanoEditor";
  8. $version = "v1.01";
  9. $dir     = "Catalogs";
  10.  
  11. if( $#ARGV == 0 )
  12. {
  13.     $dir = $ARGV[0];
  14. }
  15.  
  16. # Remove ending slash
  17. if( $dir =~ /\/$/ )
  18. {
  19.     chop $dir;
  20. }
  21.  
  22. # Search for installed language
  23. opendir DIR, "$dir" or die "$dir: $!";
  24.  
  25. while( $ent = readdir DIR )
  26. {
  27.     if( $ent =~ /\.ct$/ ) {
  28.         push @Catalogs, substr($ent, 0, -3);
  29.     }
  30. }
  31.  
  32. closedir DIR;
  33.  
  34. if( $#Catalogs < 0 )
  35. {
  36.     die "No catalogs translation files in the directory $dir!";
  37. }
  38.  
  39. open OUTFILE, ">$file" or die "$file: $!";
  40.  
  41. print OUTFILE "; Automatically generated - do not edit!\n\n";
  42.  
  43. print OUTFILE "(set APPNAME $app)\n\n";
  44.  
  45. print OUTFILE "(set M_WELCOME (cat \"Welcome to the installation of $app $version.\"))\n\n";
  46.  
  47. print OUTFILE "(set WHICH_CATALOG (cat \"\\nWhich language do you want to install ? (in LOCALE:)\\n\"))\n\n";
  48.  
  49. print OUTFILE "(set vernum (getversion \"locale.library\" (resident)))\n";
  50. print OUTFILE "(set ver (shiftright vernum 16))\n\n;\n";
  51. print OUTFILE "; Here is the screen where the user's skill is controlled\n";
  52. print OUTFILE ";\n\n(welcome M_WELCOME)\n\n";
  53.  
  54. print OUTFILE "(if (>= ver 38)\n\t(\n";
  55. print OUTFILE "\t\t(set DEF_LANG 0)\n";
  56.  
  57. # Try to set default language
  58. $i = 1;
  59. foreach $lang (@Catalogs) {
  60.  
  61.     print OUTFILE "\t\t(if (= \@language \"$lang\") (set DEF_LANG $i))\n";
  62.  
  63.     $i = $i << 1;
  64. }
  65.  
  66. # Ask user to choose language to install
  67. print OUTFILE "\t\t(set CATALOGS DEF_LANG)\n";
  68. print OUTFILE "\t\t(set CATALOGS (askoptions (prompt WHICH_CATALOG)\n";
  69. print OUTFILE "\t\t\t(help \@askoptions-help)\n";
  70. print OUTFILE "\t\t\t(choices ";
  71.  
  72. foreach $lang (@Catalogs) {
  73.     print OUTFILE "\"" . ucfirst($lang) . "\" ";
  74. }
  75. print OUTFILE ")\n\t\t\t(default DEF_LANG)\n";
  76. print OUTFILE "\t\t))\n";
  77.  
  78. # Copy Catalogs file
  79. $i = 1;
  80. foreach $lang (@Catalogs) {
  81.  
  82.     print OUTFILE "\t\t(if (BITAND CATALOGS $i)\n";
  83.     print OUTFILE "\t\t\t(copyfiles (prompt (cat MSG_COPYLANG \"$lang...\"))\n";
  84.     print OUTFILE "\t\t\t           (help \@copyfiles-help)\n";
  85.     print OUTFILE "\t\t\t           (source \"$lang/#?.catalog\")\n";
  86.     print OUTFILE "\t\t\t           (dest   \"LOCALE:Catalogs/$lang\")\n";
  87.     print OUTFILE "\t\t\t)\n\t\t)\n";
  88.  
  89.     $i = $i << 1;
  90. }
  91. print OUTFILE "\t)\n)\n";
  92.  
  93. close OUTFILE;
  94.  
  95. # Output script to automatically rebuild catalogs
  96.  
  97. open OUTFILE, ">Sources/makecat" or open OUTFILE, ">makecat" or die "makecat: $!";
  98.  
  99. print OUTFILE "; AmigaDOS script to rebuild " . $app . "'s catalog\n\n";
  100.  
  101. print OUTFILE "; Rebuild strings header:\n";
  102. print OUTFILE "CatComp $app.cd CFILE ${app}Strs.h\n\n";
  103.  
  104.  
  105. foreach $lang (@Catalogs) {
  106.     print OUTFILE "CatComp $dir/$app.cd $dir/$lang.ct CATALOG $dir/$lang/$app.catalog\n";
  107. }
  108.  
  109. close OUTFILE;
  110.  
  111.  
  112.